iT邦幫忙

2024 iThome 鐵人賽

DAY 8
0

大部分時候函數式程式設計是針對單一筆資料進行處理,例如

  • 定義數字 n 為函式輸入
  • 建立函式 n -> n + 1
  • 串接函式 n -> n * 2
  • 串接函式 n -> n -3

參考以上流程,如果 n = 5, 計算流程相當於 (((5 + 1) * 2)) - 3 = 9,類似上面這樣的邏輯推理,相信大部分人都能很很輕鬆地完成,接下來我們嘗試把單一一筆資料轉換成連續的資料流

  • 資料流_a = [a_1, a_2, a_3, ..... a_n]
  • 建立函式,資料流中的每筆資料都 + 1 ,資料流_a -> 資料流_b
  • 串接函式,資料流中的每筆資料都 * 2 資料流_b -> 資料流_c
  • .....

該如何處理資料流?

該如何串接組合處理資料流的函式?

是不是開始覺得以上問題有些抽象、不太好解決了呢? 如果還是覺得不夠複雜,我們再進一步想想下面這些問題

  • 資料流_a = [a_1, a_2, a_3, ..... a_n]
  • 資料流_b = [b_1, b_2, b_3, ..... b_n]
  • 資料流 a 和資料流 b 是每筆資料的讀取都存在時間差,時間差隨機、不固定
  • 資料流 a 和資料流 b 是彼此獨立的,兩者之間的內容出現順序並沒有邏輯關係
  • 建立函式 資料流_a * 資料流_b -> 資料流_c

該如何把兩個彼此獨立的、時間間隔隨機的資料流彙整起來呢 ?

以上光是想想就容易感到頭痛的問題,其實剛好都可以透過響應式程式設計解決,它可以像是接水管一樣,把源源不絕的資料當成水一樣,分流、匯合、過濾篩選、重組,這邊就不詳細多做介紹,相關細節非常推薦看 Mike 大大的 打通 RxJS 任督二脈


上一篇
D07 - 函數式
下一篇
D09 - 小結
系列文
六邊形戰士程式設計30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言